Cascading Style Sheets (CSS)

Cascading Style Sheets (CSS) ist eine deklarative Stylesheet-Sprache für strukturierte Dokumente (z. B. HTML und XML), die vom World Wide Web Consortium (W3C) spezifiziert wird. Durch die Trennung von Stil und Inhalt wird das Veröffentlichen und Betreuen von Dokumenten wesentlich vereinfacht. CSS wurde vor allem im Hinblick auf HTML entwickelt, ist aber auch für XML-Dokumente anwendbar. CSS ermöglicht es auch, Inhalte dem jeweiligen Ausgabemedium (z. B. Druck, Projektion, Sprachausgabe etc.) entsprechend abzuändern. Das ist nützlich, um zum Beispiel Weblinks beim Drucken extra aufzuführen und nicht (wie oft bei HTML-Seiten) zu verbergen. Oder um für ein Anzeigemedium wie einen PDA oder ein Mobiltelefon mit geringerer Auflösung die Anzeige zu optimieren (geringere Seitenbreite und -höhe).

Die Fähigkeiten von CSS sind vielfältig: Neben diversen, weit über HTML hinausgehenden Fähigkeiten im Farb- und Schriftbereich, die sich allerdings (noch) nicht mit spezialisierten Textsatzsprachen wie TeX messen können, bietet es etwa die Möglichkeit, alle Elemente frei zu positionieren, Hintergrundbilder und Vorlesestimmen festzulegen.

CSS gilt heutzutage als die Standard-Stylesheet-Sprache für das Web.


Syntax

Die Syntax besteht aus einzelnen Regeln – Zuweisungen von verschiedenen Deklarationsbereichen, bestehend aus einer oder mehreren Deklarationen, die wiederum aus Eigenschaftsbezeichner und Wert bestehen, zu Selektoren, die z. B. HTML-Elemente sein können:

Selektor { Eigenschaft-A: Wert-A; Eigenschaft-B: Wert-B; } /* Kommentar */

Das Ganze stellt (ohne den Kommentar) eine Regel dar. In den geschweiften Klammern befindet sich der Deklarationsbereich, hier mit zwei Deklarationen. Jede Regel kann beliebig viele Deklarationen enthalten.

Beispiel:

/* Kursiver, roter Text auf weißem Hintergrund */
p.note {
  font-style: italic; 
  color: red; 
  background-color: white;
}

Hier wird der Deklarationsbereich allen p-Elementen zugewiesen, die das class-Attribut mit dem Wert note besitzen. Würde man das p im Selektor weglassen, würden alle Elemente mit dem Attributwert note betroffen sein, bei Weglassen des .note alle p-Elemente.

Ein wichtiges Prinzip von CSS ist die Vererbung der Eigenschaftswerte an untergeordnete Elemente und die Kombination verschiedener Stylesheets (Kaskade). Diese können dabei aus verschiedenen Quellen stammen: vom Autor des Stylesheets, dem Browser (User Agent) oder dem Benutzer.

Kombination mit HTML bzw. XHTML

Die am häufigsten vorkommende Kombination, nämlich mit HTML oder XHTML, kann an drei Orten geschehen:

  1. Als externes Stylesheet
    1. für eine (X)HTML-Datei (link-Element),
    2. für eine XHTML-Datei (xml-stylesheet-Verarbeitungsanweisung),
  2. als internes Stylesheet in einer (X)HTML-Datei (style-Element),
  3. innerhalb von (X)HTML-Tags (style-Attribut).

Beispiel für das Laden eines Stylesheets namens beispiel.css im head-Element eines HTML-Dokuments:

<link rel="stylesheet" type="text/css" href="beispiel.css">

oder

<style type="text/css"> @import "beispiel.css"; </style>

In der Regel ist die Verwendung eines externen Stylesheets am sinnvollsten, da dieses die Trennung von Layout und Inhalt ermöglicht. Besteht eine Website beispielsweise aus zehn einzelnen HTML-Dokumenten, so zieht eine Änderung der Schriftart bei der Verwendung eines externen Stylesheets lediglich eine Änderung in dieser Datei nach sich. Würde man in diesem Beispiel auf die Verwendung von Stylesheets verzichten, so müsste in jedem HTML-Dokument jedes Auftreten des Font-Tags angepasst werden.